home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / hf^k-2.dms / in.adf / MUIClass.Lha / Include / Classes / TWiMUI / String.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-06  |  5.5 KB  |  190 lines

  1. //
  2. //  $VER: String.h      1.2 (02 Sep 1996)
  3. //
  4. //    c 1996 Thomas Wilhelmi
  5. //
  6. //
  7. // Address : Taunusstrasse 14
  8. //           61138 Niederdorfelden
  9. //           Germany
  10. //
  11. //  E-Mail : willi@twi.rhein-main.de
  12. //
  13. //   Phone : +49 (0)6101 531060
  14. //   Fax   : +49 (0)6101 531061
  15. //
  16. //
  17. //  $HISTORY:
  18. //
  19. //  16 Jun 1996 :   1.0 : first public Release
  20. //
  21. //  02 Sep 1996 :   1.2 : Neu:
  22. //                        - ClassNum() für Exception-Handling.
  23. //                        Änderungen
  24. //                        - Parameter des Copy-Konstruktor als 'const'-Parameter definiert
  25. //
  26.  
  27. #ifndef CPP_TWIMUI_STRING_H
  28. #define CPP_TWIMUI_STRING_H
  29.  
  30. #ifndef CPP_TWIMUI_GADGET_H
  31. #include <classes/twimui/gadget.h>
  32. #endif
  33.  
  34. #ifndef CPP_TWIMUI_LABEL_H
  35. #include <classes/twimui/label.h>
  36. #endif
  37.  
  38. #ifndef UTILITY_HOOKS_H
  39. #include <utility/hooks.h>
  40. #endif
  41.  
  42. class MUIStringEditHook
  43.     {
  44.     private:
  45.         struct Hook edithook;
  46.         static void EditHookEntry(register __a0 struct Hook *, register __a2 struct SGWork *, register __a1 Msg);
  47.         virtual void EditHookFunc(struct Hook *, struct SGWork *, Msg);
  48.     protected:
  49.         MUIStringEditHook();
  50.         MUIStringEditHook(const MUIStringEditHook &p);
  51.         ~MUIStringEditHook();
  52.         MUIStringEditHook &operator= (const MUIStringEditHook &);
  53.     public:
  54.         struct Hook *edit() { return(&edithook); };
  55.     };
  56.  
  57. class MUIString
  58.     :   public MUIGadget,
  59.         public MUIStringEditHook
  60.     {
  61.     protected:
  62.         virtual const ULONG ClassNum() const;
  63.     public:
  64.         MUIString(const struct TagItem *t)
  65.             :   MUIGadget(MUIC_String),
  66.                 MUIStringEditHook()
  67.             {
  68.             init(t);
  69.             };
  70.         MUIString(const Tag, ...);
  71.         MUIString(const STRPTR cont, const ULONG len)
  72.             :   MUIGadget(MUIC_String),
  73.                 MUIStringEditHook()
  74.             {
  75.             init(MUIA_String_Contents, cont,
  76.                 MUIA_String_MaxLen, len,
  77.                 MUIA_Frame, MUIV_Frame_String,
  78.                 TAG_DONE);
  79.             };
  80.         MUIString(const STRPTR cont, const ULONG len, const UBYTE cc)
  81.             :   MUIGadget(MUIC_String),
  82.                 MUIStringEditHook()
  83.             {
  84.             init(MUIA_String_Contents, cont,
  85.                 MUIA_String_MaxLen, len,
  86.                 MUIA_ControlChar, cc,
  87.                 MUIA_Frame, MUIV_Frame_String,
  88.                 TAG_DONE);
  89.             };
  90.         MUIString(const ULONG cont, const ULONG len)
  91.             :   MUIGadget(MUIC_String),
  92.                 MUIStringEditHook()
  93.             {
  94.             init(MUIA_String_Integer, cont,
  95.                 MUIA_String_Accept,"1234567890-+",
  96.                 MUIA_String_MaxLen, len,
  97.                 MUIA_Frame, MUIV_Frame_String,
  98.                 TAG_DONE);
  99.             };
  100.         MUIString(const ULONG len)
  101.             :   MUIGadget(MUIC_String),
  102.                 MUIStringEditHook()
  103.             {
  104.             init(MUIA_String_Accept,"1234567890-+",
  105.                 MUIA_String_MaxLen, len,
  106.                 MUIA_Frame, MUIV_Frame_String,
  107.                 TAG_DONE);
  108.             };
  109.         MUIString(const ULONG cont, const ULONG len, const UBYTE cc)
  110.             :   MUIGadget(MUIC_String),
  111.                 MUIStringEditHook()
  112.             {
  113.             init(MUIA_String_Integer, cont,
  114.                 MUIA_String_Accept,"1234567890-+",
  115.                 MUIA_String_MaxLen, len,
  116.                 MUIA_ControlChar, cc,
  117.                 MUIA_Frame, MUIV_Frame_String,
  118.                 TAG_DONE);
  119.             };
  120.         MUIString(const ULONG len, const UBYTE cc)
  121.             :   MUIGadget(MUIC_String),
  122.                 MUIStringEditHook()
  123.             {
  124.             init(MUIA_String_Accept,"1234567890-+",
  125.                 MUIA_String_MaxLen, len,
  126.                 MUIA_ControlChar, cc,
  127.                 MUIA_Frame, MUIV_Frame_String,
  128.                 TAG_DONE);
  129.             };
  130.         MUIString()
  131.             :   MUIGadget(MUIC_String),
  132.                 MUIStringEditHook()
  133.             { };
  134.         MUIString(const MUIString &);
  135.         virtual ~MUIString();
  136.         MUIString &operator= (const MUIString &);
  137.         void Accept(const STRPTR p) { set(MUIA_String_Accept,(ULONG)p); };
  138.         STRPTR Accept() const { return((STRPTR)get(MUIA_String_Accept,NULL)); };
  139.         STRPTR Acknowledge() const { return((STRPTR)get(MUIA_String_Acknowledge,NULL)); };
  140.         void AdvanceOnCR(const BOOL p) { set(MUIA_String_AdvanceOnCR,(ULONG)p); };
  141.         BOOL AdvanceOnCR() const { return((BOOL)get(MUIA_String_AdvanceOnCR,FALSE)); };
  142.         void AttachedList(const Object *p) { set(MUIA_String_AttachedList,(ULONG)p); };
  143.         void BufferPos(const LONG p) { set(MUIA_String_BufferPos,(ULONG)p); };
  144.         void Contents(const STRPTR p) { set(MUIA_String_Contents,(ULONG)p); };
  145.         STRPTR Contents() const { return((STRPTR)get(MUIA_String_Contents,NULL)); };
  146.         void DisplayPos(const LONG p) { set(MUIA_String_DisplayPos,(ULONG)p); };
  147.         void EditHook(const struct Hook *p) { set(MUIA_String_EditHook,(ULONG)p); };
  148.         struct Hook *EditHook() const { return((struct Hook *)get(MUIA_String_EditHook)); };
  149.         LONG Format() const { return((LONG)get(MUIA_String_Format,0L)); };
  150.         void Integer(const ULONG p) { set(MUIA_String_Integer,p); };
  151.         ULONG Integer() const { return(get(MUIA_String_Integer,0L)); };
  152.         void LonelyEditHook(const BOOL p) { set(MUIA_String_LonelyEditHook,(ULONG)p); };
  153.         BOOL LonelyEditHook() const { return((BOOL)get(MUIA_String_LonelyEditHook,FALSE)); };
  154.         LONG MaxLen() const { return((LONG)get(MUIA_String_MaxLen,0L)); };
  155.         void Reject(const STRPTR p) { set(MUIA_String_Reject,(ULONG)p); };
  156.         STRPTR Reject() const { return((STRPTR)get(MUIA_String_Reject,NULL)); };
  157.         BOOL Secret() const { return((BOOL)get(MUIA_String_Secret,FALSE)); };
  158.     };
  159.  
  160. class MUILabString
  161.     :   public MUILabelHelp,
  162.         public MUIString
  163.     {
  164.     private:
  165.         MUIKeyLabel2 MUILab;
  166.     public:
  167.         MUILabString(const STRPTR lab, const STRPTR cont, const ULONG len)
  168.             :   MUILabelHelp(lab),
  169.                 MUIString(cont,len,MUILabelHelp::gCC()),
  170.                 MUILab(MUILabelHelp::gLab(),MUILabelHelp::gCC())
  171.             {
  172.             };
  173.         MUILabString(const STRPTR lab, const ULONG cont, const ULONG len)
  174.             :   MUILabelHelp(lab),
  175.                 MUIString(cont,len,MUILabelHelp::gCC()),
  176.                 MUILab(MUILabelHelp::gLab(),MUILabelHelp::gCC())
  177.             {
  178.             };
  179.         MUILabString(const MUILabString &p)
  180.             :   MUILabelHelp((MUILabelHelp &)p),
  181.                 MUIString((MUIString &)p),
  182.                 MUILab(p.MUILab)
  183.             { };
  184.         virtual ~MUILabString();
  185.         MUILabString &operator= (const MUILabString &);
  186.         Object *label() { return(MUILab); };
  187.     };
  188.  
  189. #endif
  190.